package cn.edu.jxau.test;

import java.io.IOException;

import cn.edu.jxau.util.LinkedQueue;

public class Main {

    public static void main(String[] args) throws IOException {

        LinkedQueue<Integer> queue1 = new LinkedQueue<>();
        queue1.enqueue(1);
        queue1.enqueue(3);
        queue1.enqueue(4);
        queue1.enqueue(5);
        queue1.enqueue(6);
        queue1.enqueue(8);
        queue1.enqueue(10);
        System.out.println(queue1);
        LinkedQueue<Integer> queue2 = new LinkedQueue<>();
        queue2.enqueue(2);
        queue2.enqueue(4);
        queue2.enqueue(6);
        queue2.enqueue(8);
        queue2.enqueue(10);
        System.out.println(queue2);
        
        LinkedQueue<Integer> mergeQueue = merge(queue1, queue2);
        System.out.println(mergeQueue);
    }

    private static LinkedQueue<Integer> merge(LinkedQueue<Integer> queue1, LinkedQueue<Integer> queue2) {
        
        LinkedQueue<Integer> result = new LinkedQueue<Integer>();
        while(!queue1.isEmpty() && !queue2.isEmpty()) {
            if(queue1.look() < queue2.look()) {
                result.enqueue(queue1.dequeue());
            } else {
                result.enqueue(queue2.dequeue());
            }
        }
        while(!queue1.isEmpty()) {
           result.enqueue(queue1.dequeue());
        }
        while(!queue2.isEmpty()) {
            result.enqueue(queue2.dequeue());
        }
        return result;
    }

}
